cc-pocket · Subagent & Document cards — chat-stream molecules
dark · terracotta accent · JetBrains Mono for paths
SCREEN 01 Mobile · chat stream in context both cards between normal assistant messages
Running treatment
9:41
Fix relay reconnect default
Lidapeng-MacBook · ~/proj/app/cc-pocket
You
the reconnect loop dies after the 3rd retry — find why and add a regression test.
Claude
Let me map how reconnection is wired before touching anything — dispatching a subagent to explore.
Root cause confirmed. I've hoisted the timer and written up the analysis so you can share it:
PDF
reconnect-rca.pdf
84 KB · no inline preview
Now running the new regression test through a subagent:
Agent·run regression suite
3 tools· Bash  gradlew :relay:test
0:04
↑ 1.2k  ↓ 340
In-stream behaviour
  • SubagentCard is an aside — a raised card, not main-thread prose. The report reads in secondary ink, one step quieter than Claude's own text, so the thread stays legible.
  • Tap the header to expand / collapse a finished agent's report. Running agents show a live tool-count · latest tool line and no chevron (nothing to open yet).
  • DocumentCard gives a binary file a confident object presence — a colour-coded type badge instead of an apology, with Preview + Save As.
  • Toggle the running treatment above to preview each liveness style in the live stream — all three are compared side-by-side in the component sheet.
SCREEN 02 Component sheet every state · running treatments · type badges · desktop icons
Motion
2.1SubagentCard · five statesan autonomous Task run
runninglive progress line
Agent·explore codebase
5 tools· Grep  "reconnect"
0:08
Status tile carries agent identity + state colour. Sub-line updates as the agent works: total tool-count + the most recent tool and its target.
succeededcollapsed
Terminal ✓ in a success-tinted tile. The result summary sits where the progress line was; a chevron invites the report.
succeededexpanded · report
Report is markdown, scrollable inside the card, capped at ~210px. Footer repeats the run summary + a quiet copy.
failederror line
✗ in a danger-tinted tile; the error headline replaces the progress line in danger ink. Expands to the captured stderr.
backgroundwill notify later
Agent·backfill test coverage
launched· long-running
Background
Running in the background. We'll notify you here when it finishes — keep chatting meanwhile.
Detached run: a Background pill instead of an elapsed timer, and a calm notify hint. No pulsing — it isn't asking for attention.
2.2Running state · treatments to pick fromalive but calm — no forever-spinners
aPulse dot
Agent·explore codebase
5 tools· Grep  "reconnect"
0:08
A single pinging accent dot rides the header. Familiar, contained, reads instantly as "live."
bBreathing line
Agent·explore codebase
5 tools· Grep  "reconnect"
0:08
No dot — the progress line itself gently breathes opacity. The motion lives where the fresh information is.
cLeft-edge bar
Agent·explore codebase
5 tools· Grep  "reconnect"
0:08
A breathing accent rail down the left edge. Quietest of the three; scales to a stack of concurrent agents without dot-noise.
2.3DocumentCard · three statesoffice / pdf / binary files
normal
XLSX
Q3_forecast.xlsx
284 KB · no inline preview
Badge + filename + size line, then Preview (accent-filled) and Save As (outline). Confident, not apologetic.
too large
PPTX
all-hands-deck.pptx
2.4 MB · exceeds transfer cap
Too large to open here — the relay link caps transfers at 1800 KB. Grab it from the computer running the daemon.
Actions give way to a plain-language cap explanation. The exact limit is named so the ask isn't a mystery.
loadingbytes
DOCX
spec-draft.docx
transferring over relay…
820 KB / 1.2 MB
Byte transfer is determinate, so it earns an honest progress bar + readout — not a spinner that never resolves.
2.4Type badges · six familiessubtle per-family colour, within the dark palette
XLSX
Spreadsheet
xlsx · csv · numbers
DOCX
Document
docx · pages · rtf
PPTX
Slides
pptx · key
PDF
PDF
pdf
ZIP
Archive
zip · tar · gz
BIN
Binary
bin · dat · so
Each tile is a tinted surface (family colour @ ~13%) with a mono extension and a subtle folded corner — a paper cue that reads as "document object." Spreadsheet→green, document→blue, slides→terracotta, pdf→red, archive→amber, binary→neutral grey. Tints stay quiet so red never reads as an error and the row of files stays calm.
2.5Desktop Changes-browser header icons1.5pt line · quiet toolbar weight
clusterbeside the file path
src/net/relay/WsClient.rs M
Copy-path (existing) + the two new icons sit in one right-aligned group; muted at rest, they lift to a raised chip on hover.
iconsrest → hover
Open
Save As · hover
Open = box-with-arrow (external). Save As = arrow-into-tray (download). Both 1.5pt to match the copy-path glyph.
SCREEN 03 Desktop · two-pane chat same cards, narrower & denser · hover affordances
State
cc-pocket
Search⌘K
Lidapeng-MBP
Projects
cc-pocket
relay
Sessions
Fix relay reconnect
Add WS reconnect test
Refactor auth module
Settingsv0.5.0
Fix relay reconnect default
~/code/cc-pocket  ·  ⑂ main  ·  sonnet
YOU
the reconnect loop dies after the 3rd retry — find why and add a regression test.
Let me map how reconnection is wired first.
Root cause confirmed — I've written up the analysis:
PDF
reconnect-rca.pdf
84 KB · no inline preview
Running the new regression test through a subagent:
Agent·run regression suite
3 tools· Bash  gradlew :relay:test
0:04
Changes browser · file header — copy · open · save as
~/code/cc-pocket/src/net/relay/WsClient.rs M +31 −9
Desktop density & hover
  • Tighter, not different — status tile 32→28px, report cap 210→150px, chips 34→30px. The vocabulary is identical; only the metrics shrink.
  • Hover reveals affordances — the expand chevron fades in and the card lifts to a raised surface only on hover; at rest the stream stays quiet. Flip the toolbar to Hover to see it.
  • The Open and Save As icons join copy-path in the Changes-browser header (strip above) — a single muted group that lifts on hover.